package config

import (
	"log"

	"github.com/spf13/viper"
)

type Config struct {
	App struct {
		Name string
		Port string
	}
	Database struct {
		Host         string
		Port         string
		User         string
		Password     string
		Name         string
		MaxIdleConns int // 连接池中空闲连接的最大数量
		MaxOpenConns int // 打开数据库连接的最大数量
	}
}

var AppConfig *Config

// 初始化配置
func InitConfig() {
	// 配置文件名称
	viper.SetConfigName("config")
	// 配置文件类型
	viper.SetConfigType("yml")
	// 配置文件地址
	viper.AddConfigPath("./config")

	if err := viper.ReadInConfig(); err != nil {
		log.Fatalf("Error reading config: %v", err)
	}

	AppConfig = &Config{}

	if err := viper.Unmarshal(AppConfig); err != nil {
		log.Fatalf("Error Unmarshal config: %v", err)
	}

	InitDB()

}
